package utils;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;

public class GeneralUtils {
    /**
     * 生成随机UUID字符串（不包含连字符）
     *
     * @return 32位UUID字符串
     */
    public static String generateUUID() {
        return UUID.randomUUID().toString().replace("-", "");
    }

    /**
     * 生成带连字符的UUID
     *
     * @return 标准格式UUID字符串
     */
    public static String generateUUIDWithHyphen() {
        return UUID.randomUUID().toString();
    }

    /**
     * 获取当前时间戳（秒级）
     *
     * @return 当前时间戳（秒）
     */
    public static long getCurrentTimestamp() {
        return Instant.now().getEpochSecond();
    }

    /**
     * 获取当前毫秒级时间戳
     *
     * @return 当前时间戳（毫秒）
     */
    public static long getCurrentTimestampMillis() {
        return System.currentTimeMillis();
    }

    /**
     * 获取格式化的当前时间字符串
     *
     * @param pattern 时间格式模式，默认为 "yyyy-MM-dd HH:mm:ss"
     * @return 格式化的时间字符串
     */
    public static String getCurrentFormattedTime(String pattern) {
        if (pattern == null || pattern.isEmpty()) {
            pattern = "yyyy-MM-dd HH:mm:ss";
        }
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return LocalDateTime.now().format(formatter);
    }

    /**
     * 获取格式化的当前时间字符串（默认格式）
     *
     * @return 格式化的时间字符串 yyyy-MM-dd HH:mm:ss
     */
    public static String getCurrentFormattedTime() {
        return getCurrentFormattedTime(null);
    }
}
